<?php
class envio_email extends Controller {


    /**
     * Class Constructor
     */
    function envio_email(){
        parent::Controller();
        $this->load->helper('html');
        $this->load->helper(array('url', 'form'));
        
        // 2 model necesarios para el buscador principal
        $models = array( "propiedades/propiedades_model", "buscadores/buscadores_model" );
				$this->load->model($models);

        $this->load->model( 'email/email_model' );
        $this->email = $this->config->item('email', 'ion_auth');
        
    }

    function index($limit = FALSE, $offset = 0){
        // 2 lineas para agregar el buscador y set de atributo limit y offset
        $data["datos_para_buscador_simple"] = $this->buscadores_model->datos_para_buscador_simple();
        $data["datos_para_listado_de_propiedades"]["propiedades"] = $this->propiedades_model->listar_todas($limit, $offset);

        $this->load->view('email/contacto', $data);
    }

    function view_entregenos_su_propiedad($limit = FALSE, $offset = 0){
        // 2 lineas para agregar el buscador y set de atributo limit y offset
        $data["datos_para_buscador_simple"] = $this->buscadores_model->datos_para_buscador_simple();
        $data["datos_para_listado_de_propiedades"]["propiedades"] = $this->propiedades_model->listar_todas($limit, $offset);

        $this->load->view('email/contacto_entregenos_su_propiedad', $data);
    }

    /**
     * PESTAÑA FORMUKLARIO DE CONTACTO
     */
    function contacto($limit = FALSE, $offset = 0){

            $this->load->library('form_validation');

            $this->form_validation->set_rules('nombre', 'nombre', 'required|trim|min_length[5]');
            $this->form_validation->set_rules('email', 'correo electrónico', 'required|valid_email|trim');
            $this->form_validation->set_rules('mensaje', 'Mensaje', 'required|trim|min_length[10]');

            $this->form_validation->set_message('required', 'Debe introducir el campo %s');
            $this->form_validation->set_message('min_length', 'El campo %s debe ser de al menos %s carácteres');
            $this->form_validation->set_message('valid_email', 'Debe escribir una dirección de email correcta');

            /**
             * validando formulario contacto
             */
            if( $this->form_validation->run()==FALSE ){

                // 2 lineas para agregar el buscador y set de atributo limit y offset
                $data["datos_para_buscador_simple"] = $this->buscadores_model->datos_para_buscador_simple();
                $data["datos_para_listado_de_propiedades"]["propiedades"] = $this->propiedades_model->listar_todas($limit, $offset);

                $this->load->view('email/contacto', $data);
             
            }else{

                if( !empty( $_POST ) ) {

                    $data = array();
                    $data['nombre']          = $this->input->post( 'nombre');
                    $data['email']           = $this->input->post( 'email');
                    $data['telefono']        = '';
                    $data['descripcion']     = $this->input->post( 'mensaje');
                    $data['id_propiedad']    = '';
                    $data['fecha_de_envio']  = date("Y-m-d");
                    $data['info_dirigido_a'] = 'CONTACTO';
                    // registro de email
                    
                    $id_insert = $this->email_model->registroEmail($data);
                    
                    if(!empty ($id_insert)){
                        // envio email
                        $this->_envioEmailContacto($data);
                        redirect('envio_email', 'refresh');

                    }

                }
            }
    }
    
    /**
     * Envia Email desde la pestaña de detalles de propiedades
     *
     */
    function contacto_ejecutivo(){

        if( !empty( $_POST ) ) {

            $contacto = array();
            $contacto['nombre']          = $this->input->post( 'name');
            $contacto['email']           = $this->input->post( 'email');
            $contacto['telefono']        = $this->input->post( 'telefono');
            $contacto['descripcion']     = $this->input->post( 'mensaje');
            $contacto['id_propiedad']    = $this->input->post( 'id_propiedad');
            $contacto['fecha_de_envio']  = date("Y-m-d");
            $contacto['info_dirigido_a'] = 'EJECUTIVO';

            $id_insert = $this->email_model->registroEmail($contacto);

            if(!empty ($id_insert)){
                // envio email
                $this->_envioEmailContacto($contacto);
                
            }
            
        }

    }


    /**
     * lINK EN FLASH PRINCIPAL : entregenos_su_propiedad
     */
    function entregenos_su_propiedad($limit = FALSE, $offset = 0){

            $this->load->library('form_validation');

            $this->form_validation->set_rules('nombre', 'nombre', 'required|trim|min_length[5]');
            $this->form_validation->set_rules('email', 'correo electrónico', 'required|valid_email|trim');
            $this->form_validation->set_rules('mensaje', 'Mensaje', 'required|trim|min_length[10]');

            $this->form_validation->set_message('required', 'Debe introducir el campo %s');
            $this->form_validation->set_message('min_length', 'El campo %s debe ser de al menos %s carácteres');
            $this->form_validation->set_message('valid_email', 'Debe escribir una dirección de email correcta');

            /**
             * validando formulario contacto
             */
            if( $this->form_validation->run()==FALSE ){

                // 2 lineas para agregar el buscador y set de atributo limit y offset
                $data["datos_para_buscador_simple"] = $this->buscadores_model->datos_para_buscador_simple();
                $data["datos_para_listado_de_propiedades"]["propiedades"] = $this->propiedades_model->listar_todas($limit, $offset);

                $this->load->view('email/contacto_entregenos_su_propiedad', $data);

            }else{

                if( !empty( $_POST ) ) {

                    $data = array();
                    $data['nombre']          = $this->input->post( 'nombre');
                    $data['email']           = $this->input->post( 'email');
                    $data['telefono']        = '';
                    $data['descripcion']     = $this->input->post( 'mensaje');
                    $data['id_propiedad']    = '';
                    $data['fecha_de_envio']  = date("Y-m-d");
                    $data['info_dirigido_a'] = 'ENTRG_PROP';
                    // registro de email

                    $id_insert = $this->email_model->registroEmail($data);

                    if(!empty ($id_insert)){
                        // envio email
                        $this->_envioEmailContacto($data);
                        redirect('envio_email/view_entregenos_su_propiedad', 'refresh');

                    }

                }
            }
    }


    /**
     *  Envio Email Contacto desde una cuenta cliente gmail google apps
     * @param <type> $data
     */
    function _envioEmailContacto($data) {

        $email_protocol = $this->email['protocol'];
        $email_host     = $this->email['host'];
        $email_port     = $this->email['port'];
        $email_user     = $this->email['user'];
        $email_pass     = $this->email['pass'];
        $email_nom      = $this->email['nom_usuario'];

        $config = Array(
            'protocol'  => $email_protocol,
            'smtp_host' => $email_host,
            'smtp_port' => $email_port,
            'smtp_user' => $email_user,
            'mailtype'  => 'html',
            'smtp_pass' => $email_pass,
        );

        $this->load->library('email', $config);
        $this->email->initialize($config);
        $this->email->set_newline("\r\n");
        $this->email->from($email_user,$email_nom);

        if($data['info_dirigido_a']=='EJECUTIVO'){

            $this->email->to('jkarlos.astudillo@gmail.com');
            $this->email->subject('Mensaje Contacto a Ejecutivo');

            $message = '<html><head></head><body>';
            $message = $message . '<p><b>Nombre : </b>'.$data['nombre'].'</p>';
            $message = $message . '<p><b>Email  : </b>'.$data['email'].'</p></p>';
            $message = $message . '<p><b>Telefono  : </b>'.$data['telefono'].'</p></p>';
            $message = $message . '<p><b>Id Propiedad  : </b>'.$data['id_propiedad'].'</p></p>';
            $message = $message . '<p><b>Mensaje</b></p>';
            $message = $message . '<p>'.$data['descripcion'].'</p>';
            $message = $message . '</body></html>';

        }

        if($data['info_dirigido_a']=='CONTACTO'){

            $this->email->to('jkarlos.astudillo@gmail.com');
            $this->email->subject('Mensaje Contacto');

            $message = '<html><head></head><body>';
            $message = $message . '<p><b>Nombre : </b>'.$data['nombre'].'</p>';
            $message = $message . '<p><b>Email  : </b>'.$data['email'].'</p></p>';
            $message = $message . '<p><b>Mensaje</b></p>';
            $message = $message . '<p>'.$data['descripcion'].'</p>';
            $message = $message . '</body></html>';

        }

        if($data['info_dirigido_a']=='ENTRG_PROP'){

            $this->email->to('jkarlos.astudillo@gmail.com');
            $this->email->subject('Mensaje Contacto ENTREGENOS SU PROPIEDAD');

            $message = '<html><head></head><body>';
            $message = $message . '<p><b>Nombre : </b>'.$data['nombre'].'</p>';
            $message = $message . '<p><b>Email  : </b>'.$data['email'].'</p></p>';
            $message = $message . '<p><b>Mensaje</b></p>';
            $message = $message . '<p>'.$data['descripcion'].'</p>';
            $message = $message . '</body></html>';

        }

        $this->email->message($message);

        if (!$this->email->send())
            show_error($this->email->print_debugger());
        //else
        //    echo 'Tu mensaje fue enviado!';

    }

}

?>
